<?php 
header("Content-type: text/html; charset=utf-8"); 



$receive=current($_FILES);
// $_FILES为选择的文件信息。current是数组指针指向的单元，默认是数组的第一项


$arr=["jpg","png","gif"];
// 定义一个数组，为下面步骤匹配上传文件的格式


if ($receive["error"]==0) {
	$dir = "./upload/".date('Y-m-d').'/';
	// 定义一个字符串，这个字符串是一个目录，为下面建立目录做准备
	// 如果下面直接建立的话需要upload这个文件存在才能建立date('Y-m-d')文件，如果upload不存在侧要用递归方式，先建立upload文件
	
	is_dir($dir) || mkdir($dir);
	// 判断上面的目录是否存在，如果存在，就不用执行后面的建立目录。如果不存在就新建一个目录

	$fenkai = explode('.',$receive['name']);
	// 将接受过来的数组的name键用“.”拆分成数组

	$name= end($fenkai);
	// end函数是将数组的指针指向最后一个单元(文件名)并返回其值，定义一个变量等于这个值

	

	if (in_array($name, $arr)) {
		// 检查数组$arr中是否存在某个值$name,用于判断上传的文件格式
		$name = uniqid().'.'.$name;
		// 当前时间微秒数的唯一ID。

		move_uploaded_file($receive['tmp_name'], $dir.$name);
		// 将上传的文件移动到新位置(一个临时的文件名移到指定的目录名，注意目录名是有文件名字的)
	}else{
		echo "你上传的类型不符合要求";
	}



}else{
	echo "上传失败，失败代码为".$receive["errorr"];
}

Header("Location: ./file.php"); 












 ?>